# 作业2：使用文件和目录操作，定义一个统计指定目录大小的函数（注意目录中还有子目录）
# 利用os模块进行文件判断和处理
# 递归统计文件夹里的各级则文件夹

import os

def getFileSize(filePath):
    '''
    :param filePath: 文件的绝对路径
    :return: 文件大小，小于0表示文件路径错误
    '''
    fileSize = -1
    if os.path.isfile(filePath):
        # 文件，获取其大小
        fileSize += os.path.getsize(filePath)
    elif os.path.isdir(filePath):
        # 文件夹，获取所有子文件
        for file in os.listdir(filePath):
            # 拼接得到子文件的绝对路径
            path = os.path.join(filePath, file)
            if os.path.isfile(path):
                fileSize += os.path.getsize(path)
            elif os.path.isdir(path):
                # 递归获取子文件夹的大小
                fileSize += getFileSize(path)

    return fileSize

filePath = ''
while len(filePath) <= 0:
    filePath = input('请输入需要统计的文件路径，输入q退出：')

if filePath == 'q':
    pass
elif len(filePath) > 0:
    fileSize = getFileSize(filePath)
    if fileSize < 0:
        print('输入的文件路径错误！')
    else:
        print('指定文件大小为：', getFileSize(filePath))


